<?php

require_once "./PageView.php";
require_once "./LoginHandler.php";
require_once "./Database.php";
require_once "./LoginView.php";

class LoginController {

	private $statusMessage = "";
		
	//Kallar på instanser för Handler/View
	public function LoginDoControll(Database $db) {
			$lh = new LoginHandler($db);
			$pv = new PageView();
			$lw = new LoginView();
			$html = "";
		
		//Är man inloggad och försöker logga in eller om cookien är inläst så loggas man in så länge username/password är korrekt. 
		if(!$lh -> IsLoggedIn())
		{
			if($lw -> TriedToLogin() || $lw->readCookie())
			{
				//Anropar via DoLogin databasen som i sin tur insertar användare.
				if($lh -> DoLogin($lw->GetUserName(), $lw->GetPassword()))
				{
					$this->statusMessage .= $lw->statusMessage(LoginView::LOGGEDIN);
					
					//Är cookien "sparad", alltså om rememberCookie har anropas så settas cookien med en tidsparameter via setCookie()
					if($lw -> rememberCookie())
					{
						$lw -> setCookie();
					}
				}
				else {
					
					$this->statusMessage .= $lw->statusMessage(LoginView::FORMATFAIL);
				}
			}
		}
		else {
			//Om man försöker logga ut genom att trycka på logout loggas man ut och cookien tas bort.
			if($lw -> TriedToLogout())
			{
				$this->statusMessage .= $lw->statusMessage(LoginView::LOGGEDOUT);
				
				$lw -> unsetCookie();
				$lh -> DoLogout();
				
			}
		}
		//Om användaren är inloggad visas login-sidan, är användaren utloggad visas login-formuläret.
		if($lh->IsLoggedIn()){
			
			$html .= $lw->DoLogoutBox();
			
		}else{
			$html .= $lw->DoLoginBox();
	
		}
		
	return $html. $this->statusMessage;	

	}
}

?>
